package main

import "fmt"

func main() {
	a := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

	s1 := a[0:3]

	fmt.Println(s1)

	s2 := s1[1:5]
	fmt.Println(s2)

	s1[0] = 10
	fmt.Println(a) // [10 2 3 4 5 6 7 8 9 0]

	s2[0] = 20
	fmt.Println(a) // [10 20 3 4 5 6 7 8 9 0]
	s2 = append(s2, 30)
	s2 = append(s2, 30)
	s2 = append(s2, 30)
	s2 = append(s2, 30)
	s2 = append(s2, 30)
	s2 = append(s2, 30)
	fmt.Println(a, cap(s2), cap(a)) // [10 20 3 4 5 30 30 30 30 30] 18 10
	// 自动扩容  * 2
	// append 时 会覆盖数组的原来的值
	// append 不受数组长度 和 容量限制

}
